package cn.neusoft.vo;

import cn.neusoft.exception.AppExceptionCodeMsg;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResultBean<T>{

    private Integer code = 200;  //成功 【200】 或错误码 【根据不同的情况 有不同的错误码】
    private String msg = "success"; //备注信息  成功【success】 错误【根据不同的情况 有不同的备注信息】
    private T data; //比如查询所有返回的集合、根据id查询返回实体对象，分页查询要返回的PageBean




    public static <T> ResultBean success(String msg, T data){
        return new ResultBean(200,msg,data);
    }

    public static <T> ResultBean success(T data){
        return new ResultBean(200,"success",data);
    }

    public static <T> ResultBean success(String msg){
        return new ResultBean(200,msg,null);
    }

    public static <T> ResultBean success(){
        return new ResultBean(200,"success",null);
    }

    public static <T> ResultBean error(){
        return new ResultBean(500,"服务器内部异常",null);
    }

    public static <T> ResultBean error(Integer code,String msg){
        return new ResultBean(code,msg,null);
    }

    public static <T> ResultBean error(AppExceptionCodeMsg appExceptionCodeMsg){
        return new ResultBean(appExceptionCodeMsg.getCode(),appExceptionCodeMsg.getMsg(),null);
    }

}

